<?php

class betaalgegevens extends formEngine {
    
    protected $formName = 'betaalgegevens';
    protected $resultAction = 'resultpage';
    protected $resultPage = 'bevestiging';
	protected $errorType = 'errorbox';
	
    # Voeg hier componenten toe aan het formulier
    public function load($page) {
        
        # Add some components to the form
        $this->addComponent('textfield', array('label' => 'Voornaam', 'value' => '', 'name' => 'voornaam'));
        $this->addComponent('textfield', array('label' => 'Achternaam', 'value' => '', 'name' => 'achternaam'));
        $this->addComponent('textfield', array('label' => 'Adres', 'value' => '', 'name' => 'adres'));
        $this->addComponent('textfield', array('label' => 'Woonplaats', 'value' => '', 'name' => 'woonplaats'));
        $this->addComponent('textfield', array('label' => 'Postcode', 'value' => '', 'name' => 'postcode', 'cssClass' => 'postcode'));
        $this->addComponent('textfield', array('label' => 'Geboortedatum', 'value' => '', 'name' => 'geboortedatum'));
        
        $values = array('m'=>'Man','v'=>'Vrouw');
        $this->addComponent('selectfield', array('label' => 'Geslacht', 'value' => $values, 'name' => 'geslacht', 'cssClass' => 'geslacht', 'emptyOption' => true));
        $this->addComponent('textfield', array('label' => 'Bankrekeningnummer', 'value' => '', 'name' => 'bankaccount'));
        
        $this->addComponent('textfield', array('label' => 'E-mail', 'value' => '', 'name' => 'email'));
        
        $this->addComponent('checkbox', array(
            'label' => 'Verlenging', 
            'value' => 'verleng', 
            'name' => 'vluchtverlenging', 
            'cssClass' => 'checkbox',
            'onclick' => 'toggleVerlenging();')
        );
        
        $values = array('2'=>'2','4'=>'4','6'=>'6','8'=>'8','10'=>'10');
        $this->addComponent('selectfield', array(
            'label' => 'Aantal Dagen', 
            'value' => $values, 
            'name' => 'aantal_verlengings_dagen', 
            'cssClass' => 'verlengingAantal', 
            'emptyOption' => false)
        );
       
        
        $this->addComponent('button', array('value' => 'Doorgaan', 'cssClass' => 'buttonDoorgaan'));
        
        parent::load($page);
        
    }
    
    # Zodra de gebruiker op opslaan drukt kun je hier de waarden van het formulier controleren
    public function validate(&$values) {
        
        $error = '';
        
        try {
        	$values['voornaam'] = shoestringConstraints::formatVoornaam($values['voornaam']);
        } catch (Exception $e) {
        	$error .= $e->getMessage().'<br/>';
        }
        
        if(strlen($values['achternaam']) == 0){
            $error .= 'Achternaam moet worden ingevuld<br/>';
        }
        
        if(strlen($values['adres']) == 0){
            $error .= 'Adres moet worden ingevuld<br/>';
        }
        
        if(strlen($values['woonplaats']) == 0){
            $error .= 'Woonplaats moet worden ingevuld<br/>';
        }
        
        try {
        	$values['postcode'] = shoestringConstraints::formatPostcode($values['postcode']);
        } catch (Exception $e) {
        	$error .= $e->getMessage().'<br/>';
        }
        
        try {
        	shoestringConstraints::checkGeboortedatum($values['geboortedatum'], null);
        } catch (Exception $e) {
        	$error .= $e->getMessage().'<br/>';
        }
        	        
        if(strlen($values['geslacht']) == 0){
            $error .= 'Geslacht moet worden ingevuld<br/>';
        }
        
        try {
	        shoestringConstraints::checkBankrekening($values['bankaccount']);
        } catch (Exception $e) {
        	$error .= $e->getMessage().'<br/>';
        }
         
        try {
	        shoestringConstraints::checkEmail($values['email']);
        } catch (Exception $e) {
        	$error .= $e->getMessage().'<br/>';
        }
        
        if($values['vluchtverlenging'] == '') {
            unset($values['vluchtverlenging']);
            unset($values['aantal_verlengings_dagen']);
        }
        
        if($error != '') {
            return $error;
        } else {
            return true;
        }
        
    }
   
    public function save($values) {
        
        # Persoonlijke gegevens slaan we nog niet in de database op
        $_SESSION['besteltraject']['betaalgegevens'] = $values;
        
        return true;
        
    }
    
}

?>
